home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / TEST / STORAGE.M < prev    next >
Encoding:
Text File  |  1990-10-09  |  2.2 KB  |  106 lines

  1. MODULE StorageTest;
  2.  
  3. (*$E MOS *)
  4.  
  5. FROM SYSTEM IMPORT ASSEMBLER,ADDRESS;
  6. FROM StorBase IMPORT Inconsistent, ALLOCATE, DEALLOCATE, Enlarge, MemSize,
  7.         Resize, AllAvail, MemAvail;
  8. FROM Console IMPORT WriteString, WriteLn, Read;
  9. FROM StrConv IMPORT CardToStr;
  10. FROM GEMDOS IMPORT Xalloc;
  11.  
  12. VAR c: CHAR;
  13.     n: LONGCARD;
  14.     l, p: POINTER TO ADDRESS;
  15.     ok: BOOLEAN;
  16.     ad: ADDRESS;
  17.  
  18. BEGIN
  19.   Xalloc (-1L, 0, ad);
  20.   WriteString ('ST : ');
  21.   WriteString (CardToStr (ad, 0));
  22.   WriteLn;
  23.   Xalloc (-1L, 1, ad);
  24.   WriteString ('TT : ');
  25.   WriteString (CardToStr (ad, 0));
  26.   WriteLn;
  27.   WriteString ('Max: ');
  28.   WriteString (CardToStr (MemAvail(), 0));
  29.   WriteLn;
  30.   WriteString ('All: ');
  31.   WriteString (CardToStr (AllAvail(), 0));
  32.   WriteLn;
  33.   ALLOCATE (ad, 100);
  34.   WriteString ('-100:');
  35.   WriteString (CardToStr (AllAvail(), 0));
  36.   WriteLn;
  37.   Resize (ad, 80, ok);
  38.   WriteString ('+20 :');
  39.   WriteString (CardToStr (AllAvail(), 0));
  40.   WriteLn;
  41.   
  42.   (*
  43.   ASSEMBLER BREAK END;
  44.   ALLOCATE (ad, 100);
  45.   ASSEMBLER BREAK END;
  46.   IF MemSize (ad) # 100 THEN HALT END;
  47.   ASSEMBLER BREAK END;
  48.   DEALLOCATE (ad, 10);
  49.   IF MemSize (ad) # 90 THEN HALT END;
  50.   Enlarge (ad, 6, ok);
  51.   IF MemSize (ad) # 96 THEN HALT END;
  52.   n:= 4;
  53.   WriteLn;
  54.   WriteString ('ALLOCATE');
  55.   WriteLn;
  56.   p:= NIL;
  57.   REPEAT
  58.     IF Inconsistent () THEN
  59.       WriteLn;
  60.       WriteString ('Speicherfehler!');
  61.       Read (c);
  62.       WriteLn;
  63.     ELSE
  64.       WriteString ('.');
  65.     END;
  66.     l:= p;
  67.     ALLOCATE (p, n);
  68.     IF p # NIL THEN p^:= l END;
  69.     n:= n * 2L;
  70.   UNTIL p = NIL;
  71.   IF Inconsistent () THEN
  72.     WriteString ('Speicherfehler!');
  73.     Read (c);
  74.     WriteLn;
  75.   END;
  76.   WriteLn;
  77.   WriteString ('DEALLOCATE');
  78.   WriteLn;
  79.   REPEAT
  80.     p:= l^;
  81.     DEALLOCATE (l, 0);
  82.     l:= p;
  83.     IF Inconsistent () THEN
  84.       WriteLn;
  85.       WriteString ('Speicherfehler!');
  86.       Read (c);
  87.       WriteLn;
  88.     ELSE
  89.       WriteString ('.');
  90.     END;
  91.   UNTIL p = NIL;
  92.   p:= ADDRESS(2L);
  93.   DEALLOCATE (p, 0);
  94.   IF Inconsistent () THEN
  95.     WriteLn;
  96.     WriteString ('Speicherfehler!');
  97.     Read (c);
  98.     WriteLn;
  99.   END;
  100.   WriteLn;
  101.   WriteString ('Ready.');
  102.   WriteLn;
  103.   Read (c);
  104.   *)
  105. END StorageTest.
  106.